// noinspection JSUnresolvedReference
/**
* Field Google Map
*/
/* global jQuery, document, redux_change, redux, google */
(function ( $ ) {
'use strict';
redux.field_objects = redux.field_objects || {};
redux.field_objects.google_maps = redux.field_objects.google_maps || {};
/* LIBRARY INIT */
redux.field_objects.google_maps.init = function ( selector ) {
if ( ! selector ) {
selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' );
}
$( selector ).each(
function ( i ) {
let delayRender;
const el = $( this );
let parent = el;
if ( ! el.hasClass( 'redux-field-container' ) ) {
parent = el.parents( '.redux-field-container:first' );
}
if ( parent.is( ':hidden' ) ) {
return;
}
if ( parent.hasClass( 'redux-field-init' ) ) {
parent.removeClass( 'redux-field-init' );
} else {
return;
}
// Check for delay render, which is useful for calling a map
// render after JavaScript load.
delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) );
// API Key button.
redux.field_objects.google_maps.clickHandler( el );
// Init our maps.
redux.field_objects.google_maps.initMap( el, i, delayRender );
}
);
};
/* INIT MAP FUNCTION */
redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) {
let delayed;
let scrollWheel;
let streetView;
let mapType;
let address;
let defLat;
let defLong;
let defaultZoom;
let mapOptions;
let geocoder;
let g_autoComplete;
let g_LatLng;
let g_map;
let noLatLng = false;
// Pull the map class.
const mapClass = el.find( '.redux_framework_google_maps' );
const containerID = mapClass.attr( 'id' );
const autocomplete = containerID + '_autocomplete';
const canvas = containerID + '_map_canvas';
const canvasId = $( '#' + canvas );
const latitude = containerID + '_latitude';
const longitude = containerID + '_longitude';
// Add map index to data attr.
// Why, say we want to use delay_render,
// and want to init the map later on.
// You'd need the index number in the
// event of multiple map instances.
// This allows one to retrieve it
// later.
$( mapClass ).attr( 'data-idx', idx );
if ( true === delayRender ) {
return;
}
// Map has been rendered, no need to process again.
if ( $( '#' + containerID ).hasClass( 'rendered' ) ) {
return;
}
// If a map is set to delay render and has been initiated
// from another scrip, add the 'render' class so rendering
// does not occur.
// It messes things up.
delayed = Boolean( mapClass.data( 'delay-render' ) );
if ( true === delayed ) {
mapClass.addClass( 'rendered' );
}
// Create the autocomplete object, restricting the search
// to geographical location types.
g_autoComplete = await google.maps.importLibrary( 'places' );
g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} );
// Data bindings.
scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) );
streetView = Boolean( mapClass.data( 'street-view' ) );
mapType = Boolean( mapClass.data( 'map-type' ) );
address = mapClass.data( 'address' );
address = decodeURIComponent( address );
address = address.trim();
// Set default Lat/lng.
defLat = canvasId.data( 'default-lat' );
defLong = canvasId.data( 'default-long' );
defaultZoom = canvasId.data( 'default-zoom' );
// Eval whether to set maps based on lat/lng or address.
if ( '' !== address ) {
if ( '' === defLat || '' === defLong ) {
noLatLng = true;
}
} else {
noLatLng = false;
}
// Can't have empty values, or the map API will complain.
// Set default for the middle of the United States.
defLat = defLat ? defLat : 39.11676722061108;
defLong = defLong ? defLong : -100.47761000000003;
if ( noLatLng ) {
// If displaying a map based on an address.
geocoder = new google.maps.Geocoder();
// Set up Geocode and pass address.
geocoder.geocode(
{'address': address},
function ( results, status ) {
let latitude;
let longitude;
// Function results.
if ( status === google.maps.GeocoderStatus.OK ) {
// A good address was passed.
g_LatLng = results[0].geometry.location;
// Set map options.
mapOptions = {
center: g_LatLng,
zoom: defaultZoom,
streetViewControl: streetView,
mapTypeControl: mapType,
scrollwheel: scrollWheel,
mapTypeControlOptions: {
style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR,
position: google.maps.ControlPosition.LEFT_BOTTOM
},
mapId: 'REDUX_GOOGLE_MAPS',
};
// Create map.
g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions );
// Get and set lat/long data.
latitude = el.find( '#' + containerID + '_latitude' );
latitude.val( results[0].geometry.location.lat() );
longitude = el.find( '#' + containerID + '_longitude' );
longitude.val( results[0].geometry.location.lng() );
redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID );
} else {
// No data found, alert the user.
alert( 'Geocode was not successful for the following reason: ' + status );
}
}
);
} else {
// If displaying map based on an lat/lng.
g_LatLng = new google.maps.LatLng( defLat, defLong );
// Set map options.
mapOptions = {
center: g_LatLng,
zoom: defaultZoom, // Start off far unless an item is selected, set by php.
streetViewControl: streetView,
mapTypeControl: mapType,
scrollwheel: scrollWheel,
mapTypeControlOptions: {
style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR,
position: google.maps.ControlPosition.LEFT_BOTTOM
},
mapId: 'REDUX_GOOGLE_MAPS',
};
// Create the map.
g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions );
redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID );
}
};
redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) {
let markerTooltip;
let infoWindow;
let g_marker;
let geoAlert = mapClass.data( 'geo-alert' );
// Get HTML.
const input = document.getElementById( autocomplete );
// Set objects into the map.
g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input );
// Bind objects to the map.
g_autoComplete = new google.maps.places.Autocomplete( input );
g_autoComplete.bindTo( 'bounds', g_map );
// Get the marker tooltip data.
markerTooltip = mapClass.data( 'marker-tooltip' );
markerTooltip = decodeURIComponent( markerTooltip );
// Create infoWindow.
infoWindow = new google.maps.InfoWindow();
// Create marker.
g_marker = new google.maps.Marker(
{
position: g_LatLng,
map: g_map,
anchorPoint: new google.maps.Point( 0, - 29 ),
draggable: true,
title: markerTooltip,
animation: google.maps.Animation.DROP
}
);
geoAlert = decodeURIComponent( geoAlert );
// Place change.
google.maps.event.addListener(
g_autoComplete,
'place_changed',
function () {
let place;
let address;
let markerTooltip;
infoWindow.close();
// Get place data.
place = g_autoComplete.getPlace();
// Display alert if something went wrong.
if ( ! place.geometry ) {
window.alert( geoAlert );
return;
}
console.log( place.geometry.viewport );
// If the place has a geometry, then present it on a map.
if ( place.geometry.viewport ) {
g_map.fitBounds( place.geometry.viewport );
} else {
g_map.setCenter( place.geometry.location );
g_map.setZoom( 17 ); // Why 17? Because it looks good.
}
markerTooltip = mapClass.data( 'marker-tooltip' );
markerTooltip = decodeURIComponent( markerTooltip );
// Set the marker icon.
g_marker = new google.maps.Marker(
{
position: g_LatLng,
map: g_map,
anchorPoint: new google.maps.Point( 0, - 29 ),
title: markerTooltip,
clickable: true,
draggable: true,
animation: google.maps.Animation.DROP
}
);
// Set marker position and display.
g_marker.setPosition( place.geometry.location );
g_marker.setVisible( true );
// Form array of address components.
address = '';
if ( place.address_components ) {
address = [( place.address_components[0] && place.address_components[0].short_name || '' ),
( place.address_components[1] && place.address_components[1].short_name || '' ),
( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' );
}
// Set the default marker info window with address data.
infoWindow.setContent( '
' + place.name + ' ' + address );
infoWindow.open( g_map, g_marker );
// Run Geolocation.
redux.field_objects.google_maps.geoLocate( g_autoComplete );
// Fill in address inputs.
redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete );
}
);
// Marker drag.
google.maps.event.addListener(
g_marker,
'drag',
function ( event ) {
document.getElementById( latitude ).value = event.latLng.lat();
document.getElementById( longitude ).value = event.latLng.lng();
}
);
// End marker drag.
google.maps.event.addListener(
g_marker,
'dragend',
function () {
redux_change( el.find( '.redux_framework_google_maps' ) );
}
);
// Zoom Changed.
g_map.addListener(
'zoom_changed',
function () {
el.find( '.google_m_zoom_input' ).val( g_map.getZoom() );
}
);
// Marker Info Window.
infoWindow = new google.maps.InfoWindow();
google.maps.event.addListener(
g_marker,
'click',
function () {
const marker_info = containerID + '_marker_info';
const infoValue = document.getElementById( marker_info ).value;
if ( '' !== infoValue ) {
infoWindow.setContent( infoValue );
infoWindow.open( g_map, g_marker );
}
}
);
};
/* FILL IN ADDRESS FUNCTION */
redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) {
// Set variables.
const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' );
// What if someone only wants city, or state, ect...
// gotta do it this way to check for the address!
// Need to check each of the returned components to see what is returned.
const componentForm = {
street_number: 'short_name',
route: 'long_name',
locality: 'long_name',
administrative_area_level_1: 'short_name',
country: 'long_name',
postal_code: 'short_name'
};
// Get the place details from the autocomplete object.
const place = g_autoComplete.getPlace();
let component;
let i;
let addressType;
let _d_addressType;
let val;
let len;
document.getElementById( latitude ).value = place.geometry.location.lat();
document.getElementById( longitude ).value = place.geometry.location.lng();
for ( component in componentForm ) {
if ( componentForm.hasOwnProperty( component ) ) {
// Push in the dynamic form element ID again.
component = containerID + '_' + component;
// Assign to proper place.
document.getElementById( component ).value = '';
document.getElementById( component ).disabled = false;
}
}
// Get each component of the address from the place details
// and fill the corresponding field on the form.
len = place.address_components.length;
for ( i = 0; i < len; i += 1 ) {
addressType = place.address_components[i].types[0];
if ( componentForm[addressType] ) {
// Push in the dynamic form element ID again.
_d_addressType = containerID + '_' + addressType;
// Get the original.
val = place.address_components[i][componentForm[addressType]];
// Assign to proper place.
document.getElementById( _d_addressType ).value = val;
}
}
};
redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) {
if ( navigator.geolocation ) {
navigator.geolocation.getCurrentPosition(
function ( position ) {
const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude );
const circle = new google.maps.Circle(
{
center: geolocation,
radius: position.coords.accuracy
}
);
g_autoComplete.setBounds( circle.getBounds() );
}
);
}
};
/* API BUTTON CLICK HANDLER */
redux.field_objects.google_maps.clickHandler = function ( el ) {
// Find the API Key button and react on click.
el.find( '.google_m_api_key_button' ).on(
'click',
function () {
// Find message wrapper.
const wrapper = el.find( '.google_m_api_key_wrapper' );
if ( wrapper.is( ':visible' ) ) {
// If the wrapper is visible, close it.
wrapper.slideUp(
'fast',
function () {
el.find( '#google_m_api_key_input' ).trigger( 'focus' );
}
);
} else {
// If the wrapper is visible, open it.
wrapper.slideDown(
'medium',
function () {
el.find( '#google_m_api_key_input' ).trigger( 'focus' );
}
);
}
}
);
el.find( '.google_m_autocomplete' ).on(
'keypress',
function ( e ) {
if ( 13 === e.keyCode ) {
e.preventDefault();
}
}
);
// Auto select autocomplete contents,
// since Google doesn't do this inherently.
el.find( '.google_m_autocomplete' ).on(
'click',
function ( e ) {
$( this ).trigger( 'focus' );
$( this ).trigger( 'select' );
e.preventDefault();
}
);
};
} )( jQuery );
Disfruta del emocionante juego de Roll Dorado en línea, solo en casinos españoles – Orchid Group Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54
Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54
Descubre los mejores casinos españoles para jugar al emocionante Roll Dorado en línea
Descubre los mejores casinos españoles para jugar al emocionante Roll Dorado en línea. Prueba suerte en William Hill Casino, un sitio web de renombre con una gran selección de juegos. No te pierdas la oportunidad de jugar en Betway Casino, donde la diversión está garantizada. Si estás buscando un casino en línea con un bono de bienvenida generoso, 888 Casino es una excelente opción. Para una experiencia de juego más exclusiva, visita Marca Apuestas Casino. No te olvides de probar Betsson Casino, una plataforma de juegos en línea de confianza. Y si prefieres un casino con un enfoque más moderno, LeoVegas Casino es la elección perfecta para ti. ¡Descubre hoy mismo los mejores casinos españoles para jugar al emocionante Roll Dorado en línea!
Aprende trucos y estrategias para ganar en el juego de Roll Dorado en casinos españoles
Si estás buscando mejorar tu juego en el Roll Dorado de los casinos españoles, ¡has llegado al lugar correcto! Aprende trucos y estrategias efectivas para aumentar tus posibilidades de ganar.
1. Comprende las reglas: Asegúrate de conocer las reglas del juego y las apuestas disponibles.
2. Practica en línea: Mejora tu técnica y estrategia jugando gratis en línea antes de apostar en un casino físico.
3. Administra tu bankroll: Establece un límite de ganancias y pérdidas y síguelo estrictamente.
4. Apuesta en números calientes: Identifica los números que más salen y apuesta en ellos.
5. Usa la estrategia de la dados: Aprende y aplica la estrategia de la dados para aumentar tus posibilidades de ganar.
6. Evita apuestas arriesgadas: Evita apuestas con bajas probabilidades y altos pagos.
7. Sé constante: La práctica y la paciencia son clave para mejorar en el juego del Roll Dorado.
Roll Dorado: el juego de moda en los casinos online españoles
Roll Dorado está arrasando en los casinos online de España. ¡Es el juego de moda en este momento! Combina la emoción de la ruleta con una interfaz moderna y fácil de usar. Los gráficos en alta definición y los efectos de sonido realistas hacen que la experiencia de juego sea aún más inmersiva. Además, Roll Dorado ofrece una gran variedad de apuestas y opciones de juego, lo que lo convierte en una excelente opción tanto para principiantes como para jugadores experimentados. Con su alta calidad y su jugabilidad adictiva, no es de extrañar que Roll Dorado sea el juego de moda en los casinos online españoles. ¡Únete a la diversión y descubre por qué todo el mundo está hablando de Roll Dorado!
Experimenta la emoción del juego de Roll Dorado en vivo en casinos españoles
¡Experimenta la emoción del juego de Roll Dorado en vivo en casinos españoles! Sumérgete en la atmósfera de un auténtico casino español mientras giras la rueda de la fortuna. Roll Dorado es un juego de azar emocionante y fácil de aprender, ideal para principiantes y expertos por igual.Disfruta de la interacción en tiempo real con dealers profesionales y de la emoción de ver la rueda girar en vivo. Los casinos españoles ofrecen una experiencia de juego auténtica y emocionante que no te puedes perder.
No te pierdas la oportunidad de ganar grandes premios y sentir la emoción del juego en un entorno seguro y regulado. ¡Experimenta la emoción del Roll Dorado en vivo en casinos españoles hoy mismo!
Conoce las diferencias entre el Roll Dorado en vivo y el juego en línea en casinos españoles
Si estás buscando explorar el mundo de los juegos de casino en España, es importante que conozcas las diferencias entre el Roll Dorado en vivo y el juego en línea. A continuación, te presentamos 7 diferencias clave en formato HTML: 1. El Roll Dorado en vivo se juega con un crupier en vivo, mientras que el juego en línea utiliza un generador de números aleatorios. 2. El Roll Dorado en vivo ofrece una experiencia más auténtica y social, ya que puedes interactuar con el crupier y otros jugadores. 3. El juego en línea es más conveniente, ya que puedes jugar desde cualquier lugar y en cualquier momento. 4. El Roll Dorado en vivo tiene límites de apuesta más altos que el juego en línea. 5. El juego en línea ofrece la opción de jugar en modo demo, lo que te permite practicar antes de jugar con dinero real. 6. El Roll Dorado en vivo requiere una conexión a internet estable, mientras que el juego en línea puede ser más indulgente con la conexión. 7. El Roll Dorado en vivo está disponible en horarios específicos, mientras que el juego en línea está disponible 24/7.
Hola a todos, soy Juan y tengo 35 años. Quiero compartir mi experiencia en el casino en línea donde jugué al emocionante juego de Roll Dorado. ¡Fue increíble! Los gráficos y el sonido eran de primera categoría y me sentí como si estuviera en un casino real. Además, el proceso de registro y depósito fue muy sencillo. Definitivamente recomiendo a todos los amantes de los juegos de azar a probar suerte en este casino español.
Hola, soy Ana, una apasionada de los juegos de casino en línea. Recientemente tuve la oportunidad de jugar al juego roll dorado login de Roll Dorado en un casino español y ¡me encantó! La interfaz del juego es fácil de usar y los pagos son rápidos y confiables. Además, el servicio de atención al cliente es excepcional y siempre están dispuestos a ayudar. ¡Disfruta del emocionante juego de Roll Dorado en línea, solo en casinos españoles!
¿Qué es Roll Dorado? Es un emocionante juego de casino disponible en línea solo en casinos españoles.
¿Dónde puedo jugar Roll Dorado en España? Puedes disfrutar de este emocionante juego de azar en casinos españoles autorizados y regulados.
¿Roll Dorado es un juego de azar justo? Sí, cuando juegas Roll Dorado en casinos españoles, puedes estar seguro de que el juego es justo y transparente.
¿Puedo ganar dinero real jugando Roll Dorado? Claro que sí, cuando juegas Roll Dorado en casinos españoles, tienes la oportunidad de ganar dinero real y llevarte grandes premios a casa.